package com.cloudkinto.service.firstvesselorder;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cloudkinto.common.web.PageResult;
import com.cloudkinto.common.web.SingleResult;
import com.cloudkinto.entity.FirstVesselOrderDo;
import com.cloudkinto.service.firstvesselorder.vo.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * <p>
 *  service接口
 * </p>
 * @author zhangyy
 * @since 2020-09-16
 */
public interface FirstVesselOrderService extends IService<FirstVesselOrderDo> {

    SingleResult addInit();

    FirstVesselOrderAddReq add(FirstVesselOrderAddReq req, Long userId, Long companyId);

    SingleResult updateInit(Long id);

    SingleResult orderProductDetail(Long id);

    FirstVesselOrderUpdateReq update(FirstVesselOrderUpdateReq updateVo, Long userId);

    void updateStatus(FirstVesselUpdateStatusReq req ,Long userId);

    void uploadImages(firstVesselUploadImagesReq req);

    SingleResult updateStatusInit();

    void orderBack(FirstVesselBackReq req,Long userId);

    void updateLabellingStatus(FirstVesselUpdateLabellingReq req);

    void uploadCartonabel(FirstVesselUploadFileReq req, Long userId);

    SingleResult downloadDeclaration(Long id);

    void reDelivery(Long id,Long userId);

    void uploadDeclaration(FirstVesselUploadFileReq req, Long userId);

    void uploadCertificate(FirstVesselUploadFileReq req, Long userId);

    int delete(Long id, Long userId);

    FirstVesselOrderDetailRes detail(Long id);

    SingleResult pageInit();

    List<FirstVesselOrderPageRes> getList(Map<String, String> map);

    PageResult getListPage(Map<String, String> map);

    void setCostFee(FirstVesselPriceReq req,Long userId);

    SingleResult setCostFeeInit(Long id);

    List<FirstVesselExcelImportPackageRes> importExcel(MultipartFile file) throws IOException;
}
